Antes de C++11, el estándar de C++ era "independiente de hilos," basado en API específicas de plataforma como POSIX Threads (Pthreads) o Win32. C++ moderno revolucionó el lenguaje al introducir un modelo modelo de memoria y una API estandarizada de concurrencia.
1. El "cambio radical" de C++11
C++11 transformó el lenguaje de una máquina abstracta de un solo hilo a una que entiende nativamente la ejecución concurrente mediante el <hilo> encabezado y std::hilo. Esto pasó la multitarea de un problema de biblioteca externa al sistema de tipos principal.
2. Garantías de excepciones
El noexcept especificador es crítico en contextos concurrentes. Proporciona un contrato de que una función (como el punto de entrada de un hilo) no propagará excepciones. Si una excepción escapa de un noexcept límite, std::terminar() se llama inmediatamente, evitando la corrupción de estados indefinidos.
3. Tipos de datos consistentes
La estandarización incluyó tipos como long long int (adoptado de C99) y std::filesystem, asegurando que los anchos de datos e interacciones del sistema permanezcan consistentes entre hardware cuando se comparten entre hilos.